#include<stdio.h>
#include"tools.h"
#include"admin.h"
#include<stdlib.h>
#include<string.h>
#include"sams.h"
const char admin_passwd[10]="123456";
extern char* tea_passwd;
const char* admin_name="admin";
struct Admin admin;
struct Teacher tea[10];
struct Student stu[100];
int tea_n=0;
int job_num=10001;

void RESET_tea_Passwd()
{
	int jobname=0;
	int i;
	puts("请输入教师工号:");
	scanf("%d",&jobname);
	
	for(i=0;i<tea_n;i++)
	{
		if(tea[i].Jobname==jobname)
		{
			strcpy(tea[i].passwd,tea_passwd);
			puts("密码已重置!---按任意键返回!");
			getchar();
			getchar();
			return;

		}
	}
}
void Admin_login()
{
	char temp1[10];
	char temp2[10];
	char adminname[10];
    char mima[10];
log:printf("请输入登录名:");
	scanf("%s",adminname);
	getchar();
	//printf("%d\n",admin.first_load);
	//admin.first_load=0;
	if(strcmp(adminname,admin_name)!=0)
	{
		puts("输入错误!");
		goto log;
	}
	if(admin.first_load)
	{
		while(1)
		{
			puts("请输入密码:");
			get_pwd(mima);
			if(strcmp(mima,admin.passwd)!=0)
			{
				puts("密码错误!");
				continue;
			}
			break;

		}
	}


	else
	{
		while(1)
		{
			puts("第一次登录----请修改密码");
			puts("请输入初始密码:");
			
			get_pwd(mima);
			printf("\n");
			if(strcmp(mima,admin_passwd)!=0)
			{
				puts("密码错误!");
				continue;
			}
			else
			{
				getchar();
				puts("请输入新密码:");
				get_pwd(temp1);
				printf("\n");

				puts("请确认新密码:");
				get_pwd(temp2);
				if(strcmp(temp1,temp2)!=0)
				{
					puts("");
					printf("两次输入不一样,重置失败!");
					continue;
				}
			
				else
				{
					strcpy(admin.passwd,temp1);
					admin.first_load=1;
					puts("---修改密码成功,按任意键返回---");
					getchar();
					return;
				}
			}
		}
	}
}
void Admin_printf()
{
	int choice;
	while(1)
	{
		do
		{
			system("clear");
			puts("-----校长可选择功能-----");
			puts("    1---删除教师");
			puts("    2---添加教师");
			puts("    3---重置自己密码");
			puts("    4---重置教师密码");
			puts("    5---显示所有在职教师");
			puts("    6---显示所有退职教师");
			puts("    7---返回登录界面");
			
			puts("------------------------");
			printf("请输入选择序号：");

			scanf("%d",&choice);
			getchar();
		}while(choice < 1 ||choice > 7);

		switch(choice)
		{
			case RM: RM_teacher();  break;
			case ADD:ADD_teacher(); break;
			case RESET_OWN:RESET_own_Password();break;
			case RESET_TEA:RESET_tea_Passwd(); break;
			case SHOW_Y_WORK: SHOW_y_WORK(); break;
			case SHOW_N_WORK: SHOW_n_WORK(); break;
			case RETURN:  return;
		}
		
	}
}
void RM_teacher()
{

	puts("请输入要删除的人：");
	char str[15]; 
	gets(str);
	
	for(int i=0;i<10;i++)
	{
		if(strcmp(str,tea[i].name)==0 && tea[i].is_work)
			{
				tea[i].no_work=1;
				tea[i].is_work=0;
				printf("%s已经删除!\n",str);				
				puts("------按任意键返回------");
				getchar();
				return;
			}

	}
	printf("没有%s这个人的信息!\n",str);
	puts("------按任意键返回------");
	
	getchar();
	return;

}
void ADD_teacher()
{
	while(1)
	{
		puts("请输入姓名：");
		scanf("%s",tea[tea_n].name);
		getchar();

		puts("请输入身份证号：");
		scanf("%s",tea[tea_n].Id);
		getchar();

		puts("年龄：");
		scanf("%s",tea[tea_n].Age);
		getchar();

		while(1)
		{
			puts("职位: ");
			scanf("%c",&tea[tea_n].p);
			getchar();

			if(tea[tea_n].p != 'c' && tea[tea_n].p != 'm' && \
				tea[tea_n].p != 'e')
			{
				puts("-------ERROR-------");
				puts("-输入范围( c/m/e )-");
				continue;
			}
			break;
		}

		printf("您的工号为:%d\n",job_num+tea_n);
		tea[tea_n].Jobname = job_num+tea_n;
	
		tea[tea_n].is_work = 1;
		tea[tea_n].no_work = 0;
		tea_n++;
		printf("%d\n",tea_n);
		puts("是否继续?（y/n）");
		char c = getchar();
		getchar();
		if(c == 'n')
		{
			break;
		}
		
	}
}
void RESET_own_Password()
{
	char c;
	puts("是否重置密码！（y/n）");
	c = getchar();
	getchar();
	if(c =='y')
	{
		strcpy(admin.passwd,admin_passwd);
		puts("重置密码成功！");
		puts("------按任意键返回------");
		getchar();
		return;
	}

		puts("------按任意键返回------");
	getchar();
	return;

	
}
void SHOW_y_WORK()
{
	printf("所有在职教师为:\n");
	printf("工号     姓名      年龄  职位   身份证号\n");
	for(int i=0;i<10;i++)
	{
		if(tea[i].is_work!=0  && tea[i].no_work == 0)
		{
			printf("%-8d %-10s%-6s %-5c %s\n",tea[i].Jobname,tea[i].name,
			tea[i].Age,tea[i].p,tea[i].Id);

		}
	}

	puts("------按任意键返回------");
	getchar();
	return;

}
void SHOW_n_WORK()
{
	printf("所有离职教师为:\n");
	printf("工号     姓名      年龄  职位   身份证号\n");
	for(int i=0;i<10;i++)
	{
		if(tea[i].no_work == 1 && tea[i].is_work == 0)
		{
			printf("%-8d %-10s%-6s %-5c %s\n",tea[i].Jobname,tea[i].name,
			tea[i].Age,tea[i].p,tea[i].Id);
		}
	}

	puts("------按任意键返回------");
	getchar();
	return;

}



void Admin()
{
	Admin_login();
	Admin_printf();
//	File_save();
//	printf("2222222\n");
	
}

